package com.mybatisStudy.mapper;

import com.mybatisStudy.pojo.Employee;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface EmployeeMapper {

    // 根据员工的姓名和工资查询员工的信息，姓名和工资，其中任何一个传值为null都不影响另一个条件继续查询，工资不为空那么只考虑工资>5000的员工
    List<Employee> queryEmpByNameAndSalary(@Param("name") String name, @Param("salary") Double salary);

    // 根据员工id更新员工的数据，要求传入的name和salary不为null时才更新
    int updateEmp(@Param("id") Integer id, @Param("name") String name, @Param("salary") Double salary);

    // 复制queryEmpByNameAndSalary方法，测试trim标签
    List<Employee> queryEmpTrim(@Param("name") String name, @Param("salary") Double salary);

    // 复制queryEmpByNameAndSalary方法，测试choose标签,
    List<Employee> queryEmpChoose(@Param("name") String name, @Param("salary") Double salary);

    // 以下是四个批量操作方法
    // 根据id批量查询
    List<Employee> queryBatchEmp(@Param("ids") List<Integer> ids);
    // 根据id批量删除
    int deleteBatchEmp(@Param("ids") List<Integer> ids);
    // 根据员工对象批量插入
    int insertBatchEmp(@Param("employees") List<Employee> employees);
    // 根据员工对象批量更新
    int updateBatchEmp(@Param("employees") List<Employee> employees);


}
